package co.edu.uniandes.truequeAndes.servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import co.edu.uniandes.truequeAndes.fachada.TruequeAndes;
import co.edu.uniandes.truequeAndes.vos.Cliente;

public class ServletMensajeFecha extends ServletTemplate {

	@Override
	public String darTituloPagina(HttpServletRequest request) {
		String anomayor=request.getParameter("anomayor");
		String anomenor=request.getParameter("anomenor");
		String mesmayor=request.getParameter("mesmayor");
		String mesmenor=request.getParameter("mesmenor");
		String diamayor=request.getParameter("diamayor");
		String diamenor=request.getParameter("diamenor");
		
		
		try {
			int anomayor1=Integer.parseInt(anomayor);
			int anomenor1=Integer.parseInt(anomenor);
			int mesmayor1=Integer.parseInt(mesmayor);
			int mesmenor1=Integer.parseInt(mesmenor);
			int diamayor1=Integer.parseInt(diamayor);
			int diamenor1=Integer.parseInt(diamenor);
			Date actual=new Date();
			int anoactual=actual.getYear()+1900;
			
			
			
			if(anomayor1<1900||anomayor1>anoactual||anomenor1<1900||anomenor1>anoactual||mesmenor1<0||mesmenor1>12||mesmenor1<0||mesmenor1>12)
			{
				return "error";
			}
			else
			{
				if(mesmenor1==1||mesmenor1==3||mesmenor1==5||mesmenor1==7||mesmenor1==8||mesmenor1==10||mesmenor1==12)
				{
					if(diamayor1<0||diamayor1>31)
						return "error";
				}
				if(mesmenor1==4||mesmenor1==6||mesmenor1==9||mesmenor1==11)
				{
					if(diamayor1<0||diamayor1>30)
						return "error";
				}
				if(mesmenor1==2)
				{
					if(anomayor1%4==0)
					{
						if(diamayor1<0||diamayor1>29)
							return "error";
						else if(diamayor1<0||diamayor1>28)
							return "error";
					}
				}
				if(mesmayor1==1||mesmayor1==3||mesmayor1==5||mesmayor1==7||mesmayor1==8||mesmayor1==10||mesmayor1==12)
				{
					if(diamayor1<0||diamayor1>31)
						return "error";
				}
				if(mesmayor1==4||mesmayor1==6||mesmayor1==9||mesmayor1==11)
				{
					if(diamayor1<0||diamayor1>30)
						return "error";
				}
				if(mesmayor1==2)
				{
					if(anomayor1%4==0)
					{
						if(diamayor1<0||diamayor1>29)
							return "error";
						else if(diamayor1<0||diamayor1>28)
							return "error";
					}
				}
				if(anomayor1>anomenor1)
					return "exito";
				else if(anomayor1<anomenor1)
					return "error";
				else
				{
					if(mesmayor1>mesmenor1)
						return "exito";
					else if(mesmayor1<mesmenor1)
						return "error";
					else
					{
						if(diamayor1>diamenor1||diamayor1==diamenor1)
							return "exito";
						else
							return "error";
					}
				}
				
			}
		} catch (Exception e) {
			return "fallo";
		}
		
	}

	@Override
	public String darImagenTitulo(HttpServletRequest request) {
		// TODO Auto-generated method stub
		return "uniandes.png";
	}

	@Override
	public void escribirContenido(HttpServletRequest request,
			HttpServletResponse response) throws IOException, Exception {
		long numeroiini=System.nanoTime();
		
		TruequeAndes t=TruequeAndes.darInstancia();
		t.inicializarRuta();
		PrintWriter escritor=response.getWriter();
		Cliente obtenido=(Cliente)request.getSession().getAttribute("cliente");
		request.getSession().setAttribute("cliente", obtenido);
		
		if(darTituloPagina(request).equals("fallo"))
		{
			escritor.println("<table width\"100%\" align=\"center\">");
			escritor.println("<tr> <td align=\"center\">Los valores ingresados no son numeros, por favor repita el proceso</td></tr></table>");
			escritor.println("<table width=\"50%\"> <tr><td width=\"50%\" align=\"center\"><form method=\"POST\" action=\"ServletLogin.htm\"><input type=\"submit\" name=\"regresar\" value=\"Pagina Principal\"/></form></td><td align=\"center\" width=\"50%\"><form method=\"POST\" action=\"ServletValidarFecha.htm\"><input type=\"submit\" name=\"reintentar\" value=\"Regresar\"/></form></td></tr></table>");
			long numerofini=System.nanoTime();
        	numerofini=numerofini-numeroiini;
        	
        	escritor.println("<table width=\"100\" align=\"center\">");
        	escritor.println("<tr><td align=\"center\">  " + numerofini + " en nanosegundos</td></tr></table>");
			
		}
		else if (darTituloPagina(request).equals("error"))
		{
			escritor.println("<table width\"100%\" align=\"center\">");
			escritor.println("<tr> <td align=\"center\">La fecha ingresada no es valida, o las fechas no corresponden</td></tr></table>");
			escritor.println("<table width=\"50%\"> <tr><td width=\"50%\" align=\"center\"><form method=\"POST\" action=\"ServletLogin.htm\"><input type=\"submit\" name=\"regresar\" value=\"Pagina Principal\"/></form></td><td align=\"center\" width=\"50%\"><form method=\"POST\" action=\"ServletValidarFecha.htm\"><input type=\"submit\" name=\"reintentar\" value=\"Regresar\"/></form></td></tr></table>");
			long numerofini=System.nanoTime();
        	numerofini=numerofini-numeroiini;
        	
        	escritor.println("<table width=\"100\" align=\"center\">");
        	escritor.println("<tr><td align=\"center\">  " + numerofini + " en nanosegundos</td></tr></table>");
		}
		else
		{
			{
				String algo=request.getParameter("anomenor");
				algo=algo.substring(2);
				String fechainicio=request.getParameter("diamenor") +"/"+ request.getParameter("mesmenor") + "/" + algo;
				algo=request.getParameter("anomayor");
				algo=algo.substring(2);
				String fechafinal=request.getParameter("diamayor") + "/" + request.getParameter("mesmayor")+ "/" + algo;
				
				t.requerimiento21(obtenido.darEmail(), fechainicio, fechafinal);
				long numerofini=System.nanoTime();
	        	numerofini=numerofini-numeroiini;
	        	
	        	escritor.println("<table width=\"100\" align=\"center\">");
	        	escritor.println("<tr><td align=\"center\">  " + numerofini + " en nanosegundos</td></tr></table>");
			}
		}
		
		
	}

}
